<?php
header("Content-Type:application/json;charset=utf-8");
require_once "../sdk/QH.Api.php";
require_once "QH.Config.php";
require_once 'log.php';
//初始化日志
$logHandler = new CLogFileHandler("./logs/" . date('Y-m-d') . '.log');
$log = Log::Init($logHandler, 15);

$allow_arr = array('index', 'getTaskList', 'getReadTask',  'getTaskClass', 'updateNotifyUrl'
);

$action = isset($_REQUEST['a']) ? trim($_REQUEST['a']) : 'index';
if (!in_array($action, $allow_arr)) {
    echo "error!";
    exit;
}

/*
 * 查询任务分类
 *  区分阅读任务与关注任务的权限，判断可以查看那一种任务。如果进开通阅读权限则对接阅读权限有效，对接关注任务无效，反之一样。
 *  若两种权限都开通则对接哪一个可以宅前端展示哪一个，也可以两个都展示
 **/
function getTaskClass()
{
    $entity = new QHBaseEntity();
    $config = new QHConfig();
    try {
        $result = QHApi::getTaskClass($config, $entity);
        echo json_encode($result);
    } catch (Exception $e) {
        Log::ERROR(json_encode($e));
        echo json_encode(array("code"=>-1,"msg"=>$e->getMessage()));
    }
}

/*
 * 查询阅读任务列表
 *  查找当前在线的阅读任务的接口，请求后系统会查询当前用户可以领取的阅读任务，并返回给前端显示。
 * @author Zhang Xingliang
 * @param
 **/
function getTaskList()
{
    $entity = new QHBaseEntity();
    $entity->setData('user_id',$_REQUEST['user_id']);
    $config = new QHConfig();
    try {
        $result = QHApi::getTaskList($config, $entity);
        echo json_encode($result);
    } catch (Exception $e) {
        Log::ERROR(json_encode($e));
        echo json_encode(array("code"=>-1,"msg"=>$e->getMessage()));
    }
}

/*
 * 一键领取任务
 *  一键领取是用户领取任务的重要操作，若您使用我们的页面，在任务列表中即可在点击一键领取按键时调用此接口。
 *  如果不想使用我们的页面，也可以在您自己的页面中增加按键，调取此接口领取任务。
 * @param string user_id
 **/
function getReadTask()
{
    $entity = new QHBaseEntity();
    $entity->setData('user_id',$_REQUEST['user_id']);
    $config = new QHConfig();
    try {
        $result = QHApi::getReadTask($config, $entity);
        echo json_encode($result);
    } catch (Exception $e) {
        Log::ERROR(json_encode($e));
        echo json_encode(array("code"=>-1,"msg"=>$e->getMessage()));
    }
}

/*
 * 更新异步任务完成通知地址
 *  任务完成并认定为成功后，通过此接口通知到对应app，对接任务前需要绑定，否则获取不到通知。
 **/
function updateNotifyUrl()
{
    $entity = new QHBaseEntity();
    $entity->setData('notify_url',$_REQUEST['notify_url']);
    $config = new QHConfig();
    try {
        $result = QHApi::updateNotifyUrl($config, $entity);
        echo json_encode($result);
    } catch (Exception $e) {
        Log::ERROR(json_encode($e));
        echo json_encode(array("code"=>-1,"msg"=>$e->getMessage()));
    }
}


//③、完成任务，回调通知中处理成功之后的事宜，见 notify.php

function index(){
    echo json_encode(array("code"=>-1,"msg"=>"Exception"));
}

call_user_func($action);
